/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package byblos.apresentacao.usuario;

import byblos.apresentacao.idioma.InterceptadorIdioma;
import byblos.negocio.usuario.Usuario;
import byblos.persistencia.DAO;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.annotations.Out;
import org.vraptor.annotations.Parameter;
import org.vraptor.scope.ScopeType;

/**
 *
 * @author Diego
 */
@Component
@InterceptedBy(value = {InterceptadorIdioma.class})
public class LoginComponent {

    @Out(scope = ScopeType.SESSION)
    private Usuario usuario;
    @Parameter
    public String login;
    @Parameter
    public String senha;
    @Out
    private String mensagemSucesso;
    @Out
    private String mensagemErro;

    public String login() {
        if (login == null || login.equals("")) {
            mensagemErro = "Usuário Inválido!";
            return "invalid";
        }
        login = login.toLowerCase();
        Usuario usuario = new DAO().localizar(Usuario.class, "UsuarioPorUsuario", login);
        if (usuario == null) {
            mensagemErro = "Usuário Inválido!";
            return "invalid";
        } else {
            if (usuario.getSenha().equals(senha)) {
                this.usuario = usuario;
                mensagemSucesso = "Usuário logado com sucesso!";
                return "ok";
            } else {
                mensagemErro = "Usuário ou senha inválidos!";
                return "invalid";
            }
        }
    }

    public void logout() {
        usuario = null;
        mensagemSucesso = "Logout efetuado com sucesso!";
    }
}
